package com.example.room

import android.content.Context
import android.util.Log
import androidx.room.Room
import androidx.room.RoomDatabase
import androidx.sqlite.db.SupportSQLiteDatabase

object DbManager {
    //数据库名
    private const val dbName: String = "ZRoom"

    //懒加载创建数据库
    fun getDB(context: Context): ZRoomDB {
        return Room.databaseBuilder(context, ZRoomDB::class.java, dbName)
            .allowMainThreadQueries() //允许在主线程操作
            .addCallback(DbCreateCallBack)//增加回调监听
            .addMigrations() //增加数据库迁移
            .fallbackToDestructiveMigration() //出现异常问题 重建数据表，同时数据也会丢失。
            .build()
    }

    private object DbCreateCallBack : RoomDatabase.Callback() {
        //第一次创建数据库时调用
        override fun onCreate(db: SupportSQLiteDatabase) {
            super.onCreate(db)
            Log.e("TAG", "first onCreate db version: " + db.version)
        }


    }
}